﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Oop
{
    public class SanJiaoXing
    {
        //构造函数
        /// <summary>
        /// 初始化一个三角形，需要传入三边长度
        /// </summary>
        /// <param name="x">第一条边的长度</param>
        /// <param name="y">第二条边的长度</param>
        /// <param name="z">第三条边的长度</param>
        public SanJiaoXing(double x,double y,double z)
        {
            bianChang[0] = x;
            bianChang[1] = y;
            bianChang[2] = z;
        }

        //字段    没有get/set的
        double[] bianChang = new double[3];

        //属性    有get/set
        /// <summary>
        /// 边长
        /// </summary>
        public double[] BianChang
        {
            get { return bianChang; }
            //set
            //{
            //    if (value.Length != 3)
            //    {
            //        throw new ArgumentException("边数不为3");
            //    }
            //    bianChang = value;
            //}
        }

        //函数 在面向对象里叫 方法（操作、行为）
        public double JiSuanMianJi()
        {
            //先要有abc的值才能算p
            double p = JiSuanZhouChang() / 2;

            //先要有 a b c p 的值才能算s
            double s = Math.Sqrt(p * (p - BianChang[0]) * (p - BianChang[1]) * (p - BianChang[2]));
            return s;
        }

        public double JiSuanZhouChang()
        {
            double zc = 0;
            for (int i = 0; i < BianChang.Length; i++)
            {
                zc += BianChang[i];
            }
            return zc;
        }
    }
}
